class Book:
    def __init__(self, title="Unknown", author="Unknown", pages=0):
        """
        Default constructor for Book class

        Parameters:
        title (str): Title of the book
        author (str): Author of the book
        pages (int): Number of pages in the book
        """
        self.title = title
        self.author = author
        self.pages = pages

    def __str__(self):
        """String representation of the book"""
        return f"Book: {self.title} by {self.author}, {self.pages} pages"

    def __repr__(self):
        """Formal representation of the book"""
        return f"Book(title='{self.title}', author='{self.author}', pages={self.pages})"

    def __eq__(self, value):
        if not isinstance(value,Book):
            return NotImplemented
        if self.title==value.title:
            return True;


# Example usage
book1 = Book("abc","Joe")  # Using default values
book3 = Book("abc")  # Using default values
book2 = Book("Python Programming", "John Smith", 450)

print(book1)  # Book: Unknown by Unknown, 0 pages
print(book2)  # Book: Python Programming by John Smith, 450 pages
print(book3)  
print(book1==book3)
